package com.info33.platform.system.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.info33.platform.system.dto.SysScheduleDTO;
import com.info33.platform.system.entity.SysSchedule;
import com.info33.platform.system.vo.SysScheduleVO;
import com.info33.platform.system.vo.SysUserVO;

/**
 * @author admin
 */
@Repository
public interface SysScheduleDao extends BaseMapper<SysSchedule>{

	/**
	 * 分页获取日程信息列表
	 * @param page
	 * @param sysScheduleDTO
	 * @param sysUserVO
	 * @return
	 */
	IPage<SysScheduleVO> pageSchedule(IPage<SysScheduleVO> page, @Param("sysScheduleDTO") SysScheduleDTO sysScheduleDTO, 
			@Param("sysUserVO") SysUserVO sysUserVO);

	/**
	 * 根据id获取日程信息详情
	 * @param id
	 * @param sysUserVO 
	 * @return
	 */
	SysScheduleVO getDetail(@Param("id") Long id, @Param("sysUserVO") SysUserVO sysUserVO);

	/**
	 * 获取一段时间内日程信息列表
	 * @param startDate
	 * @param endDate
	 * @param sysUserVO
	 * @return
	 */
	List<SysScheduleVO> listSchedule(@Param("startDate") String startDate, @Param("endDate") String endDate, 
			@Param("sysUserVO") SysUserVO sysUserVO);

	/**
	 * 根据开始与结束日期查询有日程的日期列表
	 * @param startDate
	 * @param endDate 
	 * @param sysUserVO
	 * @return
	 */
	List<String> listScheduleDate(@Param("startDate") String startDate, @Param("endDate") String endDate, 
			@Param("sysUserVO") SysUserVO sysUserVO);


}